package org.ptkparty.shared.service;

import java.util.List;

import org.ptkparty.client.place.PlayerDto;
import org.ptkparty.shared.dto.GameDto;
import org.ptkparty.shared.dto.ProfilDto;
import org.ptkparty.shared.dto.ResultDto;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface PTKServiceAsync {

	void logUser(AsyncCallback<PlayerDto> asyncCallback);

	void getResults(String championshipId, AsyncCallback<List<ResultDto>> asyncCallback);

	void getGames(String value, AsyncCallback<List<GameDto>> asyncCallback);

	void getFinishedGames(String value, AsyncCallback<List<GameDto>> asyncCallback);

	void logUserOnGplus(String token, AsyncCallback<Boolean> asyncCallback);

	void generateGames(String championship, String boulodrome, List<String> players, AsyncCallback<Boolean> asyncCallback);

	void logUserOnFacebook(String clientToken, AsyncCallback<Boolean> asyncCallback);

	void deleteGame(String id, AsyncCallback<Void> asyncCallback);

	void getProfileForCurrentPlayer(String player, String currentChampionship, AsyncCallback<ProfilDto> asyncCallback);

	void getUser(String player, AsyncCallback<PlayerDto> asyncCallback);

	void regenerateResults(String currentChampionship, AsyncCallback<Boolean> asyncCallback);

}
